Modern packet-switched networks accommodate a greater number of users and larger amount of traffic than ever before. Unfortunately, the services desired by users now require a much greater amount of bandwidth, while demanding near real-time service in many cases. Consider, for example, a typical user's experience with a mobile phone. While, several years ago, many users were content with voice-only service, many mobile phones now double as personal computers, providing access to streaming video, peer-to-peer applications, and other high bandwidth applications. Furthermore, non-mobile networks have also experienced a significant increase in traffic, as Voice Over Internet Protocol (VoIP), IP Television (IPTV), and similar services have gradually increased in popularity.
Service providers have struggled to keep pace with the ever-increasing bandwidth requirements. Given the significant expenses associated with adding additional equipment, service providers are reluctant to address this problem by simply increasing the capacity of the network. Instead, many service providers desire to decrease costs and simultaneously improve the user's quality of experience by optimizing the efficiency of data transfer over the network.
One such optimization relates to compression of headers associated with packets transferred over the network. In bandwidth-sensitive portions of the network, many service providers employ a header compression algorithm to decrease the amount of data sent over the network. As an example, this header compression may be implemented according to Request For Comments 2507, “IP Header Compression,” published by the Internet Engineering Task Force (IETF). More specifically, during an initialization phase, a node known as a compressor sends a full header including a context identifier, which uniquely identifies the flow associated with the packet. A node known as a decompressor receives the full header and stores the associated context identifier. Subsequently, the compressor may send a “compressed” version of the header, which includes the context identifier, but omits much of the information included in the full header. Because the decompressor maintains a record of the context identifier and associated header information, the decompressor may reconstruct the full header using the information contained in the compressed version.
A second optimization relates to traffic management services implemented by provider edge nodes. In particular, a typical provider edge node implements a service that prioritizes traffic. During periods of congestion, the node prioritizes high priority traffic, while temporarily blocking low priority traffic. This technique ensures that the most important traffic reaches its destination by delaying transmission of less important traffic until the congestion subsides.
In nodes that implement both header compression and traffic management services, a number of problems arise. One problem relates to compressed packets that are placed in a low priority queue, such that these packets are blocked during periods of congestion. While these packets are delayed, the underlying context identifier may expire, such that the context identifier may be reassigned to another flow. After the congestion ends, however, these packets may be dequeued from the low priority queue and sent across the network. As a result, when these packets are received at the decompressor, the decompressor will incorrectly forward the packets according to the full header associated with the reassigned context identifier or discard the packets as a result of a generation mismatch between the old packets and the new context at the decompressor. Furthermore, if the packets with an expired context identifier include a full header, these packets may reset the context identifier at the decompressor, such that the packets in the new flow may be incorrectly discarded until the decompressor receives another full header for the new flow.
For the foregoing reasons and for further reasons that will be apparent to those of skill in the art upon reading and understanding this specification, there is a need for a solution that resolves potential problems when a packet with a compressed header is queued in a node including a traffic management function.